/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ucb.ProjetoFinal.service;

import br.ucb.ProjetoFinal.domain.Inscricao;
import br.ucb.ProjetoFinal.domain.LoteRemessa;
import br.ucb.ProjetoFinal.util.CrudService;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author DCBorges
 */
@Stateless
public class InscricaoService {

    @EJB
    private CrudService crudService;

    //Inscrição
    public void insertInscricao(Inscricao inscricao) {
        this.crudService.create(inscricao);
    }

    public void updateInscricao(Inscricao inscricao) {
        this.crudService.update(inscricao);
    }

    public void deleteInscricao(long id) {
        this.crudService.delete(Inscricao.class, id);
    }

    public Inscricao getInscricao(long id) {
        return this.crudService.find(Inscricao.class, id);
    }

    public List<Inscricao> getInscricaos() {
        return this.crudService.findAll(Inscricao.class);
    }

    //LoteRemessa
    public void insertLoteRemessa(LoteRemessa loteRemessa) {
        this.crudService.create(loteRemessa);
    }

    public void updateLoteRemessa(LoteRemessa loteRemessa) {
        this.crudService.update(loteRemessa);
    }

    public void deleteLoteRemessa(long id) {
        this.crudService.delete(LoteRemessa.class, id);
    }

    public LoteRemessa getLoteRemessa(long id) {
        return this.crudService.find(LoteRemessa.class, id);
    }

    public List<LoteRemessa> getLoteRemessas() {
        return this.crudService.findAll(LoteRemessa.class);
    }

//    public List<Inscricao> getInscricoes(Inscricao inscricao, LoteRemessa loteRemessa) {
//        Map<String, Object> args = new HashMap<String, Object>();
//        StringBuilder query = new StringBuilder("select new br.ucb.ProjetoFinal.bean.InscricaoServRet( i.nuSqnclInscricao,i.nuNisLegal,lt.nuApf ) "
//                + "from Inscricao i inner join LoteRemessa lt where 1=1");
//        if(inscricao.getNuNisLegal() != 0){
//            query.append(" and i.nuNisLegal = :pNisLegal");
//            args.put("pNisLegal", inscricao.getNuNisLegal());
//        }
//        if(inscricao.getIcRetorno() != 0){
//            query.append(" and i.icRetorno = :pIcRetorno");
//            args.put("pIcRetorno", inscricao.getIcRetorno());
//        }
//        if(loteRemessa.getNuApf() != 0){
//            query.append(" and lt.nuApf = :pNuApf");
//            args.put("pNuApf" , loteRemessa.getNuApf());
//        }
//        if(loteRemessa.getNuLote() != 0){
//            query.append(" and lt.nuLote = :pNuLote");
//            args.put("pNuLote" , loteRemessa.getNuLote());
//        }
//        if(loteRemessa.getNuRemessa() != 0){
//            query.append(" and lt.nuRemessa = :pNuRemessa");
//            args.put("pNuRemessa" , loteRemessa.getNuRemessa());
//        }
//        if(loteRemessa.getDtProcessamento() != null){
//            query.append(" and lt.dtProcessamento = :pDtProcessamento");
//            args.put("pDtProcessamento" , loteRemessa.getDtProcessamento());
//        }
//        if(loteRemessa.getNuCnpjPref() != null ){
//            query.append(" and lt.nuCnpjPref = :pNuCnpjPref");
//            args.put("pNuCnpjPref" , loteRemessa.getNuCnpjPref());
//        }
//        
//            
//       return crudService.findWithCustomQuery(query.toString(), args);
//    }
//    
//    public void detailInscricaoService(){
//        
//    }
//    public List<MotivoRejeicao> getMotivosRejeicoes(MotivoRejeicao motRej) {
//        Map<String, Object> args = new HashMap<String, Object>();
//        StringBuilder query = new StringBuilder("select m from MotivoRejeicao m where 1=1");
//        if(motRej.getCodigo() != null){
//            query.append(" and m.codigo = :pCodigo");
//            args.put("pCodigo", motRej.getCodigo());
//        }
//        
//        if(motRej.getDescricao() != null && !motRej.getDescricao().isEmpty()){
//            query.append(" and m.descricao = :pDescricao");
//            args.put("pDescricao", "%" + motRej.getDescricao() + "%");
//        }
//        
//        return crudService.findWithCustomQuery(query.toString(), args);
//    }
}
